.

Page en construction….

Présentation

Présentation

Rapide

Pseudosonn2
Age16 ans
LieuCompiègne
Ubunteros depuis1 an et demi
Distribution testéeubuntu (EDT: gnome, unity, kde) version toujours à jour, actuelle 10.10
passioné par l'informatique depuis mes 9~10 ans. (mes débuts sur win et MS-DOS LOL )

Languages

Je connait déjà quelques languages de programation :

Et je suis en train d'apprendre :

Philosophie

J'ai quitter le monde propriétaire il y a plus d'un an et je respire enfin :-P J'adore l'idée de pouvoir modifier mon système comme je le veux (même si pour le moment je me contente de peu…) mon savoir est trop faible à mon gout, mais heureusement j'ai la soif d'apprendre :-D

Projets

Je fait cette page pour mettre des liens que je trouve les plus utiles, je posterais aussi mon petit script. C'est mes petits trucs à moi, rien de génial, mais bon… j'aime l'idée de OpenSource et du Partage, alors si ça peut aider quelqu'un d'autre…

gestionnaire de taches/assistant de mon ordi en bash

Introduction

C'est un petit script qui permet d'effectuer d'autres petits scripts contenu dans des fonctions, rien d'extraordinaire, je commence depuis 3 jours le bash :p mais bon… comme j'ai pas trouver quelque chose de semblable.. je partage :) meme si c'est nul et que en l'état ça sert pas à grand chose… mais c'est pas beuger ;) du moins j'ai pas vu.. Donc s'il vous plait les habitués, venez pas dire que c'est nul, etc… parce que je le SAIT!! merci :) Ce script necessite d'ếtre "installé", pour cela, creer un REPERTOIRE et placer dans celui-là les 4 fichiers dont les sources sont en dessous, et lancer le script ainsi

sudo ./script.sh installation
  • version : 0.4
  • dépendances : zenity (si lancement de cet environnement)
  • Permet l'exécution de 10 fonctions définies dans chaque environnement.
  • Nécessite les droits root.
  • Le mot de passe est : test
  • Peut etre lancer en console ou en graphique.
  • la possibilité de lancer directement une fonction passé en parametre (utile pour un cron par exemple)

exemple de lancement :

sudo ./script.sh terminal
ou
sudo ./script.sh zenity

A venir :

  • possible gestion des utilisateurs Abandonné car inutile…
  • une meuilleur ergonomie pour le menu terminal avec l'utilisation de dialog
  • un script de connexion ssh
  • un script de sauvegarde automatique de fichier
  • un script de rangement semi-automique de fichier
  • un script de restauration rapide de programmes préféré (utilise en cas de réinstallation de sa distribution)
  • un systeme de log (dont certaines lignes de commande sont déjà présentes ^^ )

si vous avez d'autres idées à me proposer n'hésiter pas ;)

code

Le fichier "script.sh"

#!/bin/bash
clear

#version 0.4

source "config.sh"
source "programmes.sh"
source "fonctions.sh"

echo "
"`date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$lancement" >> $sortie_log
initialisation

if [ `pwd` == "$repertoire" ] 
then
	if ((EUID == 0))
	then
		#possibilité n°1
		if [ -z "$1" ]
		then
			echo `date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$plm_m" >> $sortie_log
			echo "$plm_m"
			zenity --error --title="$plm_t" --text="$plm_m"
			exit 3

		#possibilité n°2
		elif [ "$1" == "terminal" ]
		then
			echo `date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$l_m_1 $0 $l_m_2 $# $l_m_3 $1" >> $sortie_log
			echo -e "$l_m_1 $0 $l_m_2 $# $l_m_3 $1\n"
			terminal_verification_mdp
			echo "$msg_bienvenue_m"
			terminal_choisir_programme

		#possibilité n°3
		elif [ "$1" == "zenity" ]
		then
			echo `date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$l_m_1 $0 $l_m_2 $# $l_m_3 $1" >> $sortie_log
			zenity --info  --title="$l_t" --text="$l_m_1 $0 $l_m_2 $# $l_m_3 $1"
			zenity_verification_mdp
			zenity --info --title="$msg_bienvenue_t" --text="$msg_bienvenue_m"
			zenity_choisir_programme

		#possibilité n°4
		else
			for i in ${!noms_fonctions_terminal[*]}
			do
				if [ "$1" == "${noms_fonctions_terminal[i]}" ]
				then
					eval "${noms_fonctions_terminal[i]}"
					exit 9
				fi
			done

			for i in ${!noms_fonctions_zenity[*]}
			do
				if [ "$1" == "${noms_fonctions_zenity[i]}" ]
				then
					eval "${noms_fonctions_zenity[i]}"
					exit 9
				fi
			done

			if [ "$1" == "installation" ]
			then
				installation
				exit 9
			fi

			#si on n'as pas déjà quitter, c'est que la fonction n'existe pas, donc on affiche une erreur
			clear
			echo "$pli_m"
			zenity --error --title="$pli_t" --text="$pli_m"
			exit 4
		fi
	else
		clear
		echo "$root_manquant_m"
		zenity --error --title="$root_manquant_t" --text="$root_manquant_m" 
		exit 2
	fi
else
	clear
	echo "$install_non_m"
	zenity --error --title="$install_non_t" --text="$install_non_m" 
	exit 1
fi

exit

# 1 = lancer sans être installé
# 2 = lancer sans root
# 3 = lancer sans parametre
# 4 = lancer avec un parametre d'environnement incorrect

# 5 = trop d'erreurs de mdp dans l'environnement terminal
# 6 = fin normal de la session d'environnement terminal

# 7 = trop d'erreurs de mdp dans l'environnement zenity
# 8 = fin normal de la session d'environnement zenity

# 9 = fin normal de la session sans environnement

Le fichier "config.sh"

#!/bin/bash

#variables supplémentaires utilisées :
# mdp
# afficher_message
# quitter

# définition des variables
#

repertoire="/gestionnaire_de_tache"
sortie_log="log.gdt"
let "nb_essai_restant = 3"
s_mdp="test"
ner="Nombre d'essai restant :"

#lancement message
l_t=""
l_m_1="Vous avez lancé" #$0
l_m_2="avec" #$#
l_m_3="paramètres dans l'environnement "
#fin lancement message

lancement="Lancement du script..."

install_non_t="Erreur fatale!"
install_non_m="Le script n'est pas installé!"

root_manquant_t="Erreur fatale!"
root_manquant_m="Ce script nécessite d'etre lancé en tant que root!"

#

plm_t="Erreur fatale!"
plm_m="Paramètre de lancement manquant!"

pli_t="Erreur fatale!"
pli_m="Paramètre de lancement incorrect!"

entrer_mdp_t="Informations requises"
entrer_mdp_m="Entrez votre mot de passe:"

mdp_vide_t="Erreur!"
mdp_vide_m="Votre mot de passe est vide!"

mdp_incorrect_t="Erreur!"
mdp_incorrect_m="Votre mot de passe est incorrect!"

mdp_erreur_t="Erreur fatale!"
mdp_erreur_m="Vous avez fait trop d'erreurs pour le mot de passe!"

msg_bienvenue_t="Bienvenue!"
msg_bienvenue_m="Bienvenue!"

entrer_choix_t="Informations requises"
entrer_choix_m="Entrez votre choix :"

choix_vide_t="Erreur!"
choix_vide_m="Votre choix est vide!"

choix_incorrect_l="Erreur!"
choix_incorrect_m="Choix incorrect !"

fenetre_fermee_t="Erreur!"
fenetre_fermee_m="Fenetre fermée sans entrer les informations nécessaires!"

#
# fin définition des variables

Le fichier "programmes.sh"

#!/bin/bash

#définitions des array
#

noms_fonctions_terminal=(
	''
	'terminal_01'
	'terminal_02'
	'terminal_03'
	'terminal_04'
	'terminal_05'
	'terminal_06'
	'terminal_07'
	'terminal_08'
	'terminal_09'
	'terminal_10'
)
descriptions_fonctions_terminal=(
	''
	'Obtenir la liste des commandes les plus utiles'
	'Mettre à jour votre cache de paquets et vos paquets'
	'Obtenir la liste des utilisateurs de la machine courante'
	'Chiffrer une variable en sha1'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
)
noms_fonctions_zenity=(
	''
	'zenity_01'
	'zenity_02'
	'zenity_03'
	'zenity_04'
	'zenity_05'
	'zenity_06'
	'zenity_07'
	'zenity_08'
	'zenity_09'
	'zenity_10'
)
descriptions_fonctions_zenity=(
	''
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
	'vide'
)


#
#fin des définitions des array

# définition des fonctions terminal
#
function terminal_01
{
	echo "Pour obtenir une liste des commandes les plus utiles :"
	echo "http://doc.ubuntu-fr.org/commande_shell"
}
function terminal_02
{
	apt-get update
	apt-get upgrade
}
function terminal_03
{
	n=1 # Nombre d'utilisateurs
	for nom in $(awk 'BEGIN{FS=":"}{print $1}' < "/etc/passwd" )
	do
		echo "UTILISATEUR #$n = $nom"
		let "n += 1"
	done
}
function terminal_04
{
	read -p "Entrez votre mot de passe:" -s var
	read sha1 x < <(sha1sum <<< "$var")
	echo -e "\nVotre mdp en sha1 ="
	echo $sha1
}
function terminal_05
{
	dmidecode
}
function terminal_06
{
	echo "fonction vide :p"
}
function terminal_07
{
	echo "fonction vide :p"
}
function terminal_08
{
	echo "fonction vide :p"
}
function terminal_09
{
	echo "fonction vide :p"
}
function terminal_10
{
	echo "fonction vide :p"
}
#
# fin définition des fonctions terminal

# définition des fonctions zenity
#
function zenity_01
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_02
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_03
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_04
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_05
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_06
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_07
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_09
{
	zenity --info title="Vide!" --text="Vide!"
}
function zenity_10
{
	zenity --info title="Vide!" --text="Vide!"
}

#
# fin définition des fonctions zenity

le fichier "fonctions.sh"

#définitions des fonctions systèmes
#

function installation
{
	if [ -d $repertoire ]
	then
		read -p "Le répertoire $repertoire existe déjà, il seras effacer"
		sudo rm -r $repertoire
	fi
	sudo mkdir $repertoire
	sudo mv *.* $repertoire
	sudo rm -r `pwd`
	chown -R root:root $repertoire
	chmod -R 000 $repertoire
}

function initialisation
{
	menu_terminal="Menu de : ${#noms_fonctions_terminal[*]} programmes\n"
	for i in ${!noms_fonctions_terminal[*]}
	do
		menu_terminal+="$i => ${descriptions_fonctions_terminal[i]} \n"
	done
}

#définitions des fonctions de l'environnement terminal
#

function terminal_verification_mdp
{
	while true
	do
		read -p "$entrer_mdp_m" -s mdp
		echo

		#si le mdp entré est vide
		if [ -z "$mdp" ]
		then
			echo "$mdp_vide_m"

		#si le mdp entré est incorrect
		elif [ -n "$mdp" ]&&[ "$mdp" != "$s_mdp" ]
		then
			echo "$mdp_incorrect_m"

		#si le mdp est correct
		elif [ -n "$mdp" ]&&[ "$mdp" == "$s_mdp" ]
		then
			break
		fi

		let "nb_essai_restant = nb_essai_restant-1"
		echo "$ner $nb_essai_restant"

		#si le nombre d'essai restant est inférieur ou égal à 0
		if [ "$nb_essai_restant" -le 0 ]
		then
			clear
			echo "$mdp_erreur_m"
			exit 5
		fi

		echo
	done
}

function terminal_choisir_programme
{
	while true
	do
		echo -e "$menu_terminal"; afficher_message=false
		read -p "$entrer_choix_m" choix

		if [ -z "$choix" ]
		then
			echo -e "$choix_vide_m"
		else
			case "$choix" in
				"1") eval ${noms_fonctions_terminal[1]} ;afficher_message=true; ;;
				"2") eval ${noms_fonctions_terminal[2]} ;afficher_message=true; ;;
				"3") eval ${noms_fonctions_terminal[3]} ;afficher_message=true; ;;
				"4") eval ${noms_fonctions_terminal[4]} ;afficher_message=true; ;;
				"5") eval ${noms_fonctions_terminal[5]} ;afficher_message=true; ;;
				"6") eval ${noms_fonctions_terminal[6]} ;afficher_message=true; ;;
				"7") eval ${noms_fonctions_terminal[7]} ;afficher_message=true; ;;
				"8") eval ${noms_fonctions_terminal[8]} ;afficher_message=true; ;;
				"9") eval ${noms_fonctions_terminal[9]} ;afficher_message=true; ;;
				"10")eval ${noms_fonctions_terminal[10]};afficher_message=true; ;;
				*)   echo -e "$choix_incorrect_m"; ;;
			esac
		fi
		if [ "$afficher_message" == true ]
		then
			terminal_message_quitter
		fi
	done
}

function terminal_message_quitter
{
	while true
	do
		read -p "Voulez-vous continuer ?[o/n]" quitter
		if [ -z $quitter ]
		then
			echo 
		elif [ $quitter == "o" ]||[ $quitter == "O" ]||[ $quitter == "y" ]||[ $quitter == "Y" ]
		then
			break
		elif [ $quitter == "n" ]||[ $quitter == "N" ]
		then
			clear
			echo "Au revoir!"
			exit 6
		fi
	done
}

#
#fin définitions des fonctions de l'environnement terminal


#définitions des fonctions de l'environnement zenity
#
function zenity_verification_mdp
{
	while true
	do
		if mdp=`zenity --entry --title="$entrer_mdp_t" --text="$entrer_mdp_m \n $ner $nb_essai_restant" --hide-text`
		then
			#si le mdp entré est vide
			if [ -z "$mdp" ]
			then
				zenity --error --title="$mdp_vide_t" --text="$mdp_vide_m"

			#si le mdp entré est incorrect
			elif [ -n "$mdp" ]&&[ "$mdp" != "$s_mdp" ]
			then
				zenity --error --title="$mdp_incorrect_t" --text="$mdp_incorrect_m"

			#si le mdp est correct
			elif [ -n "$mdp" ]&&[ "$mdp" == "$s_mdp" ]
			then
				break
			fi
		else
			zenity --error --title="$fenetre_fermee_t" --text="$fenetre_fermee_m"
		fi

		let "nb_essai_restant = nb_essai_restant-1"

		#si le nombre d'essai restant est inférieur ou égal à 0
		if [ "$nb_essai_restant" -le 0 ]
		then
			zenity --error --title="$mdp_erreur_t" --text="$mdp_erreur_m"
			exit 7
		fi
	done
}

function zenity_choisir_programme
{
	while true
	do
		choix=`zenity --list --title="$entrer_choix_t" --text="$entrer_choix_m" --column="N°" --column="Programmes" \
		1 "${descriptions_fonctions_zenity[1]}" 2 "${descriptions_fonctions_zenity[2]}" 3 "${descriptions_fonctions_zenity[3]}" \
		4 "${descriptions_fonctions_zenity[4]}" 5 "${descriptions_fonctions_zenity[5]}" 6 "${descriptions_fonctions_zenity[6]}" \
		7 "${descriptions_fonctions_zenity[7]}" 8 "${descriptions_fonctions_zenity[8]}" 9 "${descriptions_fonctions_zenity[9]}" \
		10 "${descriptions_fonctions_zenity[10]}" `
		afficher_message=false

		if [ -z "$choix" ]
		then
			echo -e "$choix_vide_m"
		else
			case "$choix" in
				"1") eval ${noms_fonctions_zenity[1]} ;afficher_message=true; ;;
				"2") eval ${noms_fonctions_zenity[2]} ;afficher_message=true; ;;
				"3") eval ${noms_fonctions_zenity[3]} ;afficher_message=true; ;;
				"4") eval ${noms_fonctions_zenity[4]} ;afficher_message=true; ;;
				"5") eval ${noms_fonctions_zenity[5]} ;afficher_message=true; ;;
				"6") eval ${noms_fonctions_zenity[6]} ;afficher_message=true; ;;
				"7") eval ${noms_fonctions_zenity[7]} ;afficher_message=true; ;;
				"8") eval ${noms_fonctions_zenity[8]} ;afficher_message=true; ;;
				"9") eval ${noms_fonctions_zenity[9]} ;afficher_message=true; ;;
				"10")eval ${noms_fonctions_zenity[10]};afficher_message=true; ;;
				*)   echo -e "$choix_incorrect_m"; ;;
			esac
		fi

		if [ "$afficher_message" == true ]
		then
			zenity_message_quitter
		fi
	done
}

function zenity_message_quitter
{
	while true
	do
		zenity --question --title "que faire" --text "Voulez-vous continuer ?[o/n]"
		if [ $? == 0 ]
		then
			break
		else
			zenity --info --title="au revoir" --text="au revoir"
			exit 8
		fi
	done
}

#
#fin définitions des fonctions de l'environnement zenity

message xD

"Bonjour à tous les utilisateurs [ubuntu], Je fais un [script] (gratuit – juste un hobby, il ne sera pas grand ni professionnel comme [d'autres] ). Cela était en préparation depuis [meme pas une semaine], et il [n']est [pas encore] prêt. J’aimerais avoir des commentaires sur ce que vous aimez et n’aimez pas dans [ce script et ce que vous aimeriais y voir]."

Autres

Autres

Liens utiles

Vos commentaires


sonn2 Le 14/01/2012, 20:28 DELETEME 8-O LOL